package com.yao.service;

import com.yao.dataobject.ProductInfo;
import com.yao.dto.CartDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * User: 姚宏武
 * Date: 2017/11/16
 * Time: 15:26
 * Email：401369870@qq.com
 * Description: 商品service层
 */
public interface ProductService {

    /**
     * 查询一个
     *
     * @param productId 商品id
     * @return
     */
    ProductInfo findOne(String productId);

    /**
     * 查询所有在架的商品列表
     *
     * @return
     */
    List<ProductInfo> findUpAll();

    /**
     * 分页查询所有订单列表
     *
     * @param pageable
     * @return
     */
    Page<ProductInfo> findAll(Pageable pageable);

    /**
     * 添加一个商品
     *
     * @param productInfo 商品对象
     * @return
     */
    ProductInfo save(ProductInfo productInfo);

    /**
     * 加库存
     * @param cartDTOList
     */
    void increaseStock(List<CartDTO> cartDTOList);

    /**
     * 减库存
     * @param cartDTOList
     */
    void decreaseStock(List<CartDTO> cartDTOList);

    /**
     * 商品上架
     * @param productId
     * @return
     */
    ProductInfo onSale(String productId);

    /**
     * 商品下架
     * @param productId
     * @return
     */
    ProductInfo offSale(String productId);
}
